package columnd

// ColumnDesc Column描述实例
type ColumnDesc struct {
	ParentID  string     `json:"parent_id"`            // 上级栏目
	Name      string     `json:"name"`                 // 栏目名称
	ShortName string     `json:"short_name,omitempty"` // 栏目短名称
	Kind      ColumnKind `json:"kind"`                 // - 栏目类型（0,普通栏目[^kind0] 1 系统栏目[^kind1] 2 专题栏目[^kind2] 3 交流互动[^kind3]）
	Owner     string     `json:"owner,omitempty"`      //- 所属用户
	Org       string     `json:"org,omitempty"`        //- 所属组织
	Icon      []string   `json:"icon,omitempty"`       // - 栏目标志
	Page      string     `json:"page,omitempty"`       // - 栏目封面
	Banner    string     `json:"banner,omitempty"`     //- 栏目旗帜
	Desc      string     `json:"desc,omitempty"`       //- 栏目介绍
}

const (
	// CStatusNormal 正常
	CStatusNormal = 0
	// CStatusDelete 删除
	CStatusDelete = -1
	// CStatusLock 锁定
	CStatusLock = 1
)

// ColumnStatus 栏目状态
type ColumnStatus struct {
	Status  int `json:"status"`   // 状态 状态 0 正常  -1 删除 1 锁定
	InfoNum int `json:"info_num"` // 信息总数量
	PubNum  int `json:"pub_num"`  // 信息发布数量
}

const (
	// 开启功能项
	On = 1
	// 关闭功能项
	Off = 0
)

const (
	// InfoModeNormal 多篇文章模式
	InfoModeNormal = 0
	// InfoModeSingle 单篇文章模式
	InfoModeSingle = 1
)

// ColumnCtlParam 栏目控制参数值对象
type ColumnCtlParam struct {
	IsColReply       int      `json:"is_col_reply"`       // 是否开启栏目评论 0 不开启 1 开启
	IsReply          int      `json:"is_reply"`           // 是否开启信息评论 0 不开启 1 开启
	IsInfoChk        int      `json:"is_info_chk"`        // 是否开启信息审核 0 不开启 1 开启
	IsChk            int      `json:"is_chk"`             // 发评论审核模式  0 不需要审核  1 需要所有者审核 2 需要组织审核 3 需要平台审核
	AllowIntCode     []string `json:"allow_int_code"`     // 允许的互动模式 对应InteractionTypeDesc中的Code
	IsSubmit         int      `json:"is_submit"`          // 是否允许投稿 0 不开启 1 开启
	IsPublic         int      `json:"is_public"`          // 是否允许公开 0 不开启 1 开启
	IsOrg            int      `json:"is_org"`             // 是否允许其他企业调用 0 不开启 1 开启
	InfoMode         int      `json:"info_mode"`          // 信息编辑模式  0 多篇文章模式 1 单篇文章模式
	ProhibitPostInfo int      `json:"prohibit_post_info"` // 禁止发文章 0 不开启 1 开启
	Infourl          string   `json:"infourl"`            // 栏目信息详情展示页面连接
}

// ColumnExtraItem 栏目扩展属性
type ColumnExtraItem struct {
	Name        string                 `json:"name"`         // 扩展属性名称
	Code        string                 `json:"code"`         // 扩展属性编码
	Kind        string                 `json:"kind"`         // 扩展属性类型
	Placeholder string                 `json:"placeholder"`  // 扩展属性占位符
	Required    int                    `json:"required"`     // 是否必填 1 必填 0 可以为空
	Isupdate    int                    `json:"isupdate"`     //是否可以被客户端更改1 是 0 否
	Message     string                 `json:"message"`      // 校验消息
	Rules       string                 `json:"rules"`        // 校验规则
	ParamValues map[string]interface{} `json:"param_values"` // 类型扩展参数
}

// ExtraType 扩展属性类型
type ExtraType struct {
	Code   string  `json:"code"`   // 编码
	Name   string  `json:"name"`   // 名称
	Params []Param `json:"params"` // 可以配置参数
}

// Param 参数
type Param struct {
	Pcode string      `json:"pcode"` // 参数编码
	Name  string      `json:"name"`  // 显示名称
	Typ   string      `json:"typ"`   // 数据类型
	Value interface{} `json:"value"` // 值，不同类型值不同
}

// ColumnSearch 查询条件
type ColumnSearch struct {
	Key string `json:"key,omitempty"` // 关键字搜索，匹配栏目标题
	PID string `json:"pid,omitempty"` // 上级编号
	//IsChildren bool   `json:"is_children,omitempty"` // 是否包含子栏目
	Owner  string `json:"owner,omitempty"`  // 所有者
	Org    string `json:"org,omitempty"`    // 所属组织
	Status []int  `json:"status,omitempty"` //查询状态
	Range  int    `json:"range,omitempty"`
}
